home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / irc_i_dodatki / xtender197 / xtender.amirx next >
Text File  |  1996-05-19  |  23KB  |  757 lines

  1. /* Xtender - The definitive AREXX Script for AmIRC 1.x */ Version='1.97 - Aminet Release'
  2. /*
  3. \\
  4. // Beware of a fake version 2.0 of Xtender.AMIRX currently making
  5. \\ its rounds - its a modified version of the old v1.0, still with
  6. // the original reqtools requesters I originally had in this.
  7. \\          ****************************************
  8. // Changes since last version :
  9. \\ FIXED MSG <nick> option of FIND function
  10. //
  11. \\ Legalities :
  12. // People are of course allowed to make changes to this script for
  13. \\ PERSONAL USE ONLY. Re-distribution of a modified script is not
  14. // permitted. If you wish any of your changes to be permanent, then
  15. \\ contact me (Stone-D@eldar.demon.co.uk) and I will put the segment
  16. // under consideration.
  17. \\
  18. // Plagiarism : The act of submitting the whole, or partial work
  19. \\ of another individual as your own original work, without the
  20. // original authors permission. Don't do it. Please.
  21. \\
  22. // Distribution :
  23. \\ You may only re-distribute a complete Xtender archive, all original
  24. // contents of the archive must be present.
  25. \\ If anyone wishes to covermount Xtender on a magazine coverdisk or
  26. // include it as part of a CD collection, PD pack or whatever, you
  27. \\ must provide me with a FREE copy of the magazine, CD, pack, or
  28. // whatever. EMail me for my current address.
  29. \\
  30. // What is this then?
  31. \\
  32. // I got annoyed at all the different .AMIRX files I had floating
  33. \\ around, so I have decided to make an attempt to merge at least
  34. // most of them together, into the one arexx script, that is nice
  35. \\ and user friendly. Things like TYPE, AminetFind, whatever, are
  36. // included in the script, which I intend to keep developing and
  37. \\ growing, as long as fresh ideas and material keeps flowing...
  38. //
  39. \\ Installation :
  40. //
  41. \\ To install, copy Xtender.AMIRX to your AmIRC/rexx/ directory,
  42. // and make an alias, ie :
  43. \\        /ALIAS X /rx rexx/Xtender.AMIRX %p
  44. // REMEMBER The %p part!!  :)  Then just type
  45. \\        /X HELP  to get information on useage.
  46. //
  47. \\ Now, the NEWCLI function can open its shell in a public screen, ie
  48. // AmIRC's. You must tell it what the screen's name is, by setting an
  49. \\ Environment variable, so type "SetENV XtenderScreen AmIRC" or whatever
  50. // you called it. Check MUI prefs for the screen's name if you can't
  51. \\ remember.
  52. //
  53. \\ To be able to use the FAQ function, you just copy the included
  54. // xtender.library to your Libs: directory. This library is in fact just
  55. \\ a plain text file, so you can create your own FAQ entries.
  56. //
  57. \\ Also, make sure you have REXXMAST running, and have set the MUI
  58. // preferences for AmIRC to accept REXX calls (button in System/
  59. \\ interfaces/ ). You might have to restart AmIRC if you haven't
  60. // already.
  61. \\
  62. //
  63. */
  64.  
  65. /* Feel Free to delete the above blurb once you have read it, in
  66.    order to speed up operations.  :')
  67. */
  68.  
  69. /* Don't mess below here,  unless you really know  what  you are doing,  in */
  70. /* which case feel free, but please email me any changes you make so others */
  71. /* (and myself) can benefit. Thanks.                                        */
  72. NL = '0a'x
  73. bold=d2c(2)
  74.  
  75. LOGWINDOW='con:50/40/550/150/Xtender (for AmIRC) ©1996 Laga M Hale/CLOSE'
  76.  
  77. if ~show('L','rexxsupport.library') then if ~addlib('rexxsupport.library',0,-30,0) then do
  78.     say "ERROR : Could not load rexxsupport.library"
  79.     address command 'Wait 5'
  80.     exit
  81. end
  82. if ~exists("ENV:XtenderScreen") then pubscreen="Workbench"
  83. if open(pref,"ENV:XtenderScreen") then do
  84.     pubscreen=trim(readln(pref))
  85.     close(pref)
  86. end
  87.  
  88. /*  Main Code Loop Starts Here */
  89.  
  90. parse arg command" "param
  91. command=trim(upper(command))
  92.  
  93. if command="" then do
  94.     Call Version()
  95.     exit
  96. end
  97.  
  98. select
  99.     when command='TYPE'                 then Call Type(param)
  100.     when command='ABOUT'                 then Call About
  101.     when command='NEWCLI'                 then do
  102.         call Message("CLI|Spawning new "BOLD"CLI"BOLD" Environment.")
  103.         address command 'newcli con:50/40/550/150/Xtender_©1996_L_M_Hale/SCREEN'pubscreen'/CLOSE'
  104.                             end
  105.     when command='FINGER'                 then Call Finger(param)
  106.     when command='HELP'                 then Call Help(param)
  107.     when command='TRACE'                then Call Trace(param)
  108.     when command='FIND'                 then Call AminetFind(param)
  109.     when command='VER'                then Call Version()
  110.     when command='FAQ'                then Call Faq(param)
  111.     when command='WCHOP'                then Call WChop(param)
  112.     when command='ELITE'                then Call Elite(param)
  113.     when command='METER'                then Call Meter(param)
  114.     when command='LEAVE'                then Call Leave(param)
  115.     otherwise
  116.         do
  117.             Call Message("ERR|Unknown Command.  Consult "BOLD"HELP"BOLD)
  118.             Call Version()
  119.         end
  120. end
  121. Exit
  122.  
  123. /* End of main Code Loop */
  124.  
  125. Type:
  126. PARSE ARG FILENAME OUTPUT NICK
  127. OPTIONS RESULTS
  128. Filename=Trim(filename)
  129. Type=upper(trim(output))
  130. Nick=trim(nick)
  131.  
  132. if FILENAME = "" then do
  133.    Call Message("TYPE|Filename must be specified. Consult "BOLD"HELP."BOLD)
  134.    exit
  135. end
  136.  
  137. if ~exists(FILENAME) then do
  138.    Call Message("TYPE|The File "BOLD||FILENAME||BOLD" does not exist.")
  139.    exit
  140. end
  141. if trim(OUTPUT)="" then do
  142.     Call Message("TYPE|No Output Provided. Defaults to "BOLD"PRIVATE"BOLD)
  143.     output="PRIV"
  144. end
  145.  
  146. COMMAND=""
  147.  
  148. if type="SAY" then do
  149.     COMMAND='say '
  150.     outcmd="Channel"
  151. end
  152. if type="MSG" then do
  153.     if trim(nick)="" then do
  154.         Call Message("TYPE|Error, Failed to provide "BOLD"NICK."BOLD)
  155.         Exit
  156.     end
  157.     COMMAND='SAY /MSG '
  158.     outcmd="Message to "||BOLD||NICK||BOLD||"."
  159. end
  160. if type="RAW" then do
  161.     COMMAND='RAW '
  162.     outcmd="Treat as RAW Command file."
  163. end
  164.  
  165. if (COMMAND="" & Type~="PRIV") then do
  166.     Call Message("TYPE|Unrecognized output. Defaults to "BOLD"PRIVATE"BOLD)
  167.         Type="PRIV"
  168. end
  169. if Type="PRIV" then outcmd="Localised TYPE only, Private viewing."
  170. open(1,FILENAME,r)
  171.  
  172. Call Message("TYPE|Launching TYPE on "BOLD||FILENAME||BOLD)
  173. Call Message("TYPE|Output set to : "||BOLD||outcmd||BOLD)
  174. Call Message("TYPE|")
  175.  
  176. text=readln(1)
  177. do until EOF(1)
  178.    if Type="PRIV" then Call Message("TYPE|-> "text)
  179.    if Type~="PRIV" then command||nick||" -> "||text
  180.    text=readln(1)
  181. end
  182. Call Message("TYPE|")
  183. close(1)
  184. Call Message("TYPE|TYPE of "BOLD||FILENAME||BOLD" Complete.")
  185. return
  186.  
  187. Finger:
  188. parse arg nick
  189. OPTIONS RESULTS
  190.  
  191. if nick="" then do
  192.     Call Message("FINGER|Usage : Finger <Nick> - Consult "BOLD"HELP."BOLD)
  193.     exit
  194. end
  195.  
  196. USERHOST nick
  197. NickHost = RESULT
  198.  
  199. Call Message("FINGER|Launching Finger on "BOLD||Nick||BOLD"("NickHost")")
  200.  
  201. Filename = "T:FingTemp"
  202.  
  203. ADDRESS COMMAND 'AmiTCP:bin/finger 'NickHost' >'Filename
  204.  
  205. call open(1,Filename,r)
  206.     do until eof(1)
  207.               text=readln(1)
  208.                 Call Message("FINGER|"text)
  209.        end
  210. call close(1)
  211.  
  212. Call Message("FINGER|Finger on "BOLD||Nick||BOLD"("NickHost")"BOLD" Complete."BOLD)
  213. ADDRESS COMMAND 'Delete >NIL: ' Filename
  214. return
  215.  
  216. Trace:
  217. PARSE ARG ARGS
  218. OPTIONS RESULTS
  219.  
  220. if ARGS = "" then do
  221.    Call Message("TRACE|Usage: TRACE <Nick> - Consult "BOLD"HELP."BOLD)
  222.    exit
  223. end
  224.  
  225. USERHOST Args
  226. NickHost = RESULT
  227. Parse var NickHost user'@'host
  228. NickHost=Trim(host)
  229.  
  230. Call Message("TRACE|Attempting to Trace routing of "BOLD||USER||BOLD"("Host")")
  231. Call Message("TRACE|")
  232.  
  233. Namevalid = 0
  234. Count = 1
  235. do while Namevalid = 0
  236.     Filename = "T:TraceTemp"||Count
  237.     if EXISTS( Filename ) then do
  238.         Count = Count + 1
  239.         end
  240.     else do
  241.         Namevalid = 1
  242.         end
  243. end
  244. ADDRESS COMMAND 'AmiTCP:bin/traceroute >' Filename NickHost
  245.  
  246. call open(1,Filename,r)
  247. text=readln(1)
  248. do until eof(1)
  249.    Call Message("TRACE|"text)
  250.    text=readln(1)
  251. end
  252. call close(1)
  253.  
  254. Call Message("TRACE|")
  255. Call Message("TRACE|End of Traceroute Attempt.")
  256. ADDRESS COMMAND 'Delete >NIL: ' Filename
  257. return
  258.  
  259. FAQ:
  260. parse arg value
  261. faq=trim(strip(word(value,1)))
  262. outt=upper(trim(strip(word(value,2))))
  263. outpar=word(value,3)
  264. outpar=trim(outpar)
  265. outpar=upper(outpar)
  266. NICK=outpar
  267. out=""
  268. faq=upper(faq)
  269.  
  270. if faq="" then do
  271.     Call Message("FAQ|You must provide a FAQ Topic. Consult "BOLD"HELP."BOLD)
  272.     exit
  273. end
  274. if (faq~="LIST" & outt="") then do
  275.     Call Message("FAQ|No output provided, defaulting to Channel Output.")
  276.     out="SAY"
  277. end
  278.  
  279. if (outt="CHANNEL"|outt="#"|outt="CHAN"|outt="SAY") then out="SAY"
  280. if outt="PRIV" then out="PRIV"
  281. if outt="MSG" then do 
  282.     out="MSG"
  283.     if NICK="" then do
  284.         Call Message("FAQ|A Name must be given to MSG to. Refer to "BOLD"HELP."BOLD)
  285.         exit
  286.     end
  287. end
  288. if (faq~="LIST" & out="") then do
  289.     Call Message("FAQ|Output Type Unknown. Defaulting to Channel Output.")
  290.     out="SAY"
  291. end
  292.  
  293. if ~open(1,"Libs:xtender.library","R") then do
  294.     Call Message("FAQ|Unable to open Libs:xtender.library - Consult "BOLD"HELP."BOLD)
  295.     exit
  296. end
  297. match=0
  298. if faq~="LIST" then Call Message("FAQ|Searching for '"BOLD||faq||BOLD"'")
  299. if faq~="LIST" then
  300. do until (EOF(1)|Match=1)
  301.     text=upper(readln(1))
  302.     if trim(word(text,1))=faq then match=1
  303.     if match=1 then do
  304.         text="<< "text" >>"
  305.         if out="PRIV" then Call Message("FAQ|FAQ: "BOLD||text||BOLD)
  306.         if out="SAY" then "say FAQ: "text
  307.         if out="MSG" then "say /MSG "NICK" FAQ: "text
  308.         Call Message("FAQ|")
  309.         outputtext=""
  310.         do until trim(word(text,1))="#"
  311.             text=readln(1)
  312.             if text~="#" then outputtext=outputtext||" "||text
  313.         end
  314.         if out="PRIV" then Call Message("FAQ|"outputtext)
  315.         if out="SAY" then "say "outputtext
  316.         if out="MSG" then "say /MSG "NICK" "outputtext
  317.         Call Message("FAQ|")
  318.         Call Message("FAQ|End of FAQ on "BOLD||faq||BOLD" Text")
  319.     end
  320. end
  321. if (faq~="LIST" & Match=0) then Call Message("FAQ|The FAQ Entry for "BOLD||faq||BOLD" was not found.")
  322.  
  323. if faq="LIST" then do
  324.     Call Message("FAQ|Available FAQ's are :")
  325.     Call Message("FAQ|")
  326.     text=""
  327.     count=1
  328.     temp=upper(readln(1))
  329.     text=temp
  330.     do until EOF(1)
  331.         do until (trim(word(temp,1))="#"|EOF(1))
  332.             temp=readln(1)
  333.         end
  334.         temp=upper(readln(1))
  335.         if trim(temp)="" then text=text||"."
  336.         else do
  337.             text=text||","||trim(word(temp,1))
  338.             count=count+1
  339.         end
  340.     end
  341.     Call Message("FAQ|"text)
  342.         Call Message("FAQ|")
  343.     Call Message("FAQ|"BOLD||count||BOLD" FAQ Entries Found.")
  344. end
  345. close(1)
  346. return
  347.  
  348. AminetFind:
  349. /* Original code from FASTAminetFind v2.2 by    */
  350. /* Josef Faulkner (panther@gate.net) IRC: Josef */
  351. /* One or two minor changes.  ;)        */
  352. maxchansend=3
  353. maxechosend=20
  354. width=70
  355.  
  356. parse arg cmds
  357. do while left(word(cmds,words(cmds)),1)='-'
  358.     lw=upper(word(cmds,words(cmds)))
  359.     lc=left(lw,2)
  360.     num=right(lw,length(lw)-2)
  361.     if lc='-M' then do
  362.         maxchansend=num
  363.         maxechosend=num
  364.     end
  365.     if lc='-W' then do
  366.         width=num
  367.     end
  368.     cmds=reverse(cmds)
  369.     parse var cmds .' 'cmds
  370.     cmds=reverse(cmds)
  371. end
  372. if upper(word(cmds,1))='EXACT' then do
  373.     exact=1
  374.     parse var cmds .' 'cmds
  375. end
  376. else exact=0
  377. if index(cmds,'"')>0 then do
  378.     parse var cmds '"'name'"' cmd
  379. end
  380. else do
  381.     parse var cmds name' 'cmd
  382. end
  383. if name="" then do
  384.     Call Message("FIND|Search Criteria not provided. Consult "BOLD"HELP."BOLD)
  385.     exit
  386. end
  387. if exact then name='"'name'"'
  388.     if cmd='' then do
  389.         cmd='echo'
  390.         outmsg='Localised Output, Private viewing Only.'
  391.     end
  392.     if upper(left(cmd,3))='MSG' then cmd='SAY /'||cmd
  393.     if cmd~='' then outmsg=cmd
  394.     name=strip(name)
  395.     otext='Finding: '
  396.     if exact then otext=otext||'(exact) '
  397.     otext=otext||bold||name||bold
  398.     cmd=strip(cmd)
  399.     if cmd~='' then otext=otext||', Output: 'bold||outmsg||bold
  400.     otext=otext||', width 'bold||width||bold
  401.     if upper(cmd)~='ECHO' then do
  402.         length=maxchansend
  403.         otext=otext||', maxlength 'bold||maxchansend||bold
  404.     end
  405.     else do
  406.         length=maxechosend
  407.         otext=otext||', maxlength 'bold||maxechosend||bold
  408.     end
  409.     otext=otext||'.'
  410.     Call Message("FIND|"otext)
  411.     call open(2,'t:a',w)
  412.     if open(1,'tcp:ftp.wustl.edu/1848',w) then do
  413.         call writeln(1,'max 'length)
  414.         call writeln(1,'width 'width)
  415.         call writeln(1,'find 'name)
  416.         call writeln(1,'max')
  417.         cnt=0
  418.         do until eof(1)
  419.             text=readln(1)
  420.             call writeln(2,text)
  421.             if text='Missing argument.' then leave
  422.             else do
  423.                 select
  424.                     when left(text,6)='*** No' then Call Message("FIND|No Matches Found.")
  425.                     when left(text,6)='*** Ad' then Call Message("FIND|Additional Matches Found (use higher -m value for more).")
  426.                     otherwise cmd' 'text
  427.                 end
  428.             end
  429.             cnt=cnt+1
  430.             if (cnt>=maxsend)&(upper(cmd)~='ECHO') then leave
  431.         end
  432.         call writeln(1,'quit')
  433.     end
  434.     else do
  435.         Call Message("FIND|Error Opening TCP:")
  436.         Call Message("FIND|Unable to Contact Host.")
  437.     end
  438. end
  439. else Call Message("FIND|Extremely Wierd Error. EMail the Author")
  440. return
  441.  
  442. WCHOP:
  443.  
  444. parse arg args
  445. options results
  446.  
  447. if args = "" then do
  448.    Call Message("WCHOP|You need to provide text. Consult "BOLD"HELP."BOLD)
  449.    exit
  450. end
  451.  
  452. ops = ""
  453. getmynick
  454. mynick = RESULT
  455. getchannel
  456. channel = RESULT
  457.  
  458. namevalid = 0
  459. count = 0
  460. do while namevalid = 0
  461.    getuserstate count
  462.    if rc = 5 then break
  463.    if rc = 1 then do
  464.       getuser count
  465.       nick = RESULT
  466.       if nick ~= mynick then do
  467.          ops = ops nick
  468.          "say /MSG "NICK" [StoneWCHOP/"channel"] "ARGS
  469.       end
  470.    end
  471.    count = count + 1
  472. end
  473. Call Message("WCHOP|WallChop message sent to: "BOLD||strip(ops)||BOLD)
  474. return
  475.  
  476. ELITE:
  477. options results
  478. parse arg text
  479. if text='' then do
  480.     Call Message("ELITE|You must provide text. Consult "BOLD"HELP."BOLD)
  481.     exit
  482. end
  483. text=translate(text,'Ab<D3FGH|JKlMN0PQRZ7VVWXYS','abcdefghijklmnopqrstuvwxyz')
  484. text=translate(text,'abcd3fgh|jklmn0pqrz7uvwxys','ABCDEFGHIJKLMNOPQRSTUVWXYZ')
  485. 'say 'text
  486. return
  487.  
  488. METER: /* Originally from Meter v1.0 by Josef Faulkner */
  489. parse arg pct label
  490. label=strip(label)
  491. num=pct
  492. if (label=""|num="") then do
  493.     Call Message("METER|Arguments missing. Consult "BOLD"HELP."BOLD)
  494.     exit
  495. end
  496. text='['label'OMeter]'
  497. if pct<0 then do
  498.         if pct<-25 then do
  499.                 pct=25
  500.                 text=text||'-'
  501.         end
  502.         pct=pct-2.5
  503.         pct=abs(pct%5)
  504.         do n=1 to pct
  505.                 text=text||'«'
  506.         end
  507.         text=text||'|0%-----25%-----50%-----75%-----100%|'
  508. end
  509. else if pct<=25 then do
  510.         text=text||'|0%'
  511.         pct=(pct+2.5)%5
  512.         call addbar
  513.         call addspace
  514.         text=text||'25%-----50%-----75%-----100%|'
  515. end
  516. else if pct<50 then do
  517.         text=text||'|0%'
  518.         pct=(pct-22.5)%5
  519.         text=text||'»»»»»25%'
  520.         call addbar
  521.         call addspace
  522.         text=text||'50%-----75%-----100%|'
  523. end
  524. else if pct<75 then do
  525.         text=text||'|0%'
  526.         pct=(pct-47.5)%5
  527.         text=text||'»»»»»25%»»»»»50%'
  528.         call addbar
  529.         call addspace
  530.         text=text||'75%-----100%|'
  531. end
  532. else if pct<100 then do
  533.         text=text||'|0%'
  534.         pct=(pct-72.5)%5
  535.         text=text||'»»»»»25%»»»»»50%»»»»»75%'
  536.         call addbar
  537.         call addspace
  538.         text=text||'100%|'
  539. end
  540. else if pct=100 then do
  541.         text=text||'|0%'
  542.         text=text||'»»»»»25%»»»»»50%»»»»»75%»»»»»100%|'
  543. end
  544. else if pct>100 then do
  545.         text=text||'|0%'
  546.         num=pct
  547.         pct=(pct-97.5)%5
  548.         text=text||'»»»»»25%»»»»»50%»»»»»75%»»»»»100%|'
  549.         if num>200 then do
  550.                 addplus=1
  551.                 pct=20
  552.         end
  553.         else addplus=0
  554.         call addbar
  555.         if addplus then text=text||'+'
  556. end
  557. text=text||'('num'%)'
  558. 'say 'text
  559. return
  560.  
  561. ADDBAR:
  562.         do n=1 to pct
  563.                 text=text||'»'
  564.         end
  565. return
  566. ADDSPACE:
  567.         do n=1 to 5-pct
  568.                 text=text||'-'
  569.         end
  570. return
  571.  
  572. LEAVE: /* Original Script by Oliver Wagner. */
  573.  
  574. PARSE ARG ARGS
  575. OPTIONS RESULTS
  576.  
  577. if ARGS = "" then do
  578.     Call Message("LEAVE|Leaving text required. Consult "BOLD"HELP."BOLD)
  579.     exit
  580. end
  581. 'say 'ARGS
  582. 'say /leave'
  583. return
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604. About:
  605. Call Message("ABOUT|Xtender.AMIRX "BOLD"©"BOLD"1996 Stone-D Software")
  606. Call Message("ABOUT|"BOLD"L M Hale"BOLD" [Stone-D@eldar.demon.co.uk]")
  607. Call Message("ABOUT|Written using the great Cygnus ED 3.5")
  608. Call Message("ABOUT|")
  609. Call Message("ABOUT|Thanks go to the following for their products :")
  610. Call Message("ABOUT|")
  611. Call Message("ABOUT|"BOLD"Josef Faulkner"BOLD"  - for use of some of his scripts.")
  612. Call Message("ABOUT|"BOLD"Oliver Wagner"BOLD"   -  for his great AmIRC and AmFTP")
  613. Call Message("ABOUT|"BOLD"Osma Ahvenlampi"BOLD" - for Voodoo")
  614. Call Message("ABOUT|"BOLD"Petter Nilsen"BOLD"   - for Thor")
  615. Call Message("ABOUT|"BOLD"Amiga Tech"BOLD"      - for giving us a morsel of hope..")
  616. Call Message("ABOUT|")
  617. Call Message("ABOUT|Thanks also to all the great folks on EFNET #Amiga!!")
  618. Call Message("ABOUT|")
  619. return
  620.  
  621. Message:
  622. parse arg insert'|'text
  623. insert="Stone"||insert
  624. if trim(text)="" then text="-------------------------------------------------------------"
  625. "echo P="d2c(27)"b«"insert"» "text
  626. return
  627.  
  628. Version:
  629. Call Message("VER|")
  630. Call Message("VER|"BOLD"Xtender.AMIRX"BOLD" Version "BOLD||VERSION||BOLD)
  631. Call Message("VER|Read Xtender.AMIRX's Header for info on latest changes.")
  632. Call Message("VER|"BOLD"©1996"BOLD" L M Hale "BOLD"(Stone-D)"BOLD" - [Stone-D@eldar.demon.co.uk]")
  633. Call Message("VER|")
  634. return
  635.  
  636.  
  637. HELP:
  638. parse arg spec
  639. if spec="" then do
  640.     Call Message("HELP|")
  641.     Call Message("HELP|"BOLD"Xtender"BOLD" currently contains the following commands :")
  642.     Call Message("HELP|")
  643.     Call Message("HELP|"BOLD"Type"BOLD"    -               Outputs textfile to AmIRC" )
  644.     Call Message("HELP|"BOLD"FAQ"BOLD"     -         Displays a FAQ from the library" )
  645.     Call Message("HELP|"BOLD"About"BOLD"   -                   Displays About screen" )
  646.     Call Message("HELP|"BOLD"Help"BOLD"    -                       Shows this window" )
  647.     Call Message("HELP|"BOLD"NewCLI"BOLD"  -                      Opens a CLI window" )
  648.     Call Message("HELP|"BOLD"Finger"BOLD"  -            Attempts to FINGER nick@host" )
  649.     Call Message("HELP|"BOLD"Trace"BOLD"   -        Performs Traceroute on nick@host" )
  650.     Call Message("HELP|"BOLD"Find"BOLD"    -         Aminet Searcher, uses wustl.edu" )
  651.     Call Message("HELP|"BOLD"Ver"BOLD"     -     Shows Version info on Xtender.AMIRX" )
  652.     Call Message("HELP|"BOLD"WChop"BOLD"   -        Sends /MSG to all OPs on Channel" )
  653.     Call Message("HELP|"BOLD"Meter"BOLD"   -   Shows a percentage bar on the channel" )
  654.     Call Message("HELP|"BOLD"Elite"BOLD"   -            Converts text to 3l337 speke" )
  655.     Call Message("HELP|"BOLD"Leave"BOLD"   -      Leave a channel with a parting msg" )
  656.     Call Message("HELP|")
  657.     Call Message("HELP|Please report bugs etc to "BOLD"Stone-D@eldar.demon.co.uk"BOLD)
  658.     Call Message("HELP|")
  659.     Exit
  660. end
  661. spec=upper(trim(spec))
  662. Call Message("HELP|Extended Help on the "BOLD||spec||BOLD" function follows :")
  663. Call Message("HELP|")
  664.  
  665. select
  666.     when spec="FIND" then do
  667.         Call Message("HELP|FIND [EXACT] <"SubString"|"Sub Strings"> [output] [-w<width>] [-m<items>]")
  668.         Call Message("HELP|Output is the command that will be launched to display the results")
  669.         Call Message("HELP|Set maxsend to the maximum number of lines to send")
  670.         Call Message("HELP|")
  671.         Call Message("HELP|Examples:")
  672.         Call Message("HELP|FIND shapeshift msg josef    - sends output in a message to josef")
  673.         Call Message("HELP|FIND shapeshift say          - sends output to the channel")
  674.         Call Message("HELP|FIND shapeshift me           - sends output to yourself only")
  675.         Call Message('StoneHELP|FIND "irc client"            - anything with "irc" AND "client"')
  676.         Call Message('StoneHELP|FIND exact "irc client"      - anything with "irc client" exactly')
  677.         Call Message("HELP|FIND xtender say -w60 -m10   - Shows up to 10 lines truncating to 60 width")
  678.         Call Message('StoneHELP|FIND "comm/net amirc"        - Will search for comm/net (the directory)')
  679.     end
  680.     when spec="TYPE" then do
  681.         Call Message("HELP|TYPE Usage :" )
  682.         Call Message("HELP|TYPE <Path:TextFile> <OutPut> <Nick>" )
  683.         Call Message("HELP|OutPut can be one of :" )
  684.         Call Message("HELP|  SAY  - Output to the current channel. Can get you kicked." )
  685.         Call Message("HELP|  PRIV - Output to yourself only, direct to AmIRC." )
  686.         Call Message("HELP|  RAW  - Treats the textfile as a set of RAW Commands. Beware." )
  687.         Call Message("HELP|  MSG  - Directs Output to a defined NICK." )
  688.         Call Message("HELP|NICK is only needed for MSG output." )
  689.     end
  690.     when spec="FAQ" then do
  691.         Call Message("HELP|FAQ Usage:" )
  692.         Call Message("HELP|FAQ LIST/S <topic> <output> <nick>" )
  693.         Call Message("HELP|If the keyword LIST is provided, a list of all available FAQ's in the library is shown, and all other arguments are ignored.")
  694.         Call Message("HELP|OutPut Can be one of :" )
  695.         Call Message("HELP|  CHAN  - Outputs the FAQ to the current channel. Also takes CHANNEL,#,SAY.")
  696.         Call Message("HELP|  PRIV  - Output to yourself only, direct to AmIRC." )
  697.         Call Message("HELP|MSG  - Output to <nick> via /MSG. <nick> is only needed for this function.")
  698.         Call Message("HELP|OutPut Defaults to SAY when Unrecognised or not given.")
  699.         Call Message("HELP|To add new FAQ's, edit the file Libs:Xtender.library with your text editor and refer to the first entry for instructions.")
  700.     end
  701.     when spec="ABOUT" then do
  702.         Call Message("HELP|This shows information about Xtender.AMIRX")
  703.     end
  704.     when spec="VER" then do
  705.         Call Message("HELP|This shows Xtender.AMIRX's current Version")
  706.     end
  707.     when spec="NEWCLI" then do
  708.         Call Message("HELP|Spawns a fresh CLI (Command Line Interface) on the Workbench.")
  709.     end
  710.     when spec="FINGER" then do
  711.         Call Message("HELP|FINGER Usage:")
  712.         Call Message("HELP|FINGER <nick>")
  713.         Call Message("HELP|Launches AmiTCP's Finger Command on NICK's email address.")
  714.     end
  715.     when spec="TRACE" then do
  716.         Call Message("HELP|TRACE Usage:")
  717.         Call Message("HELP|TRACE <nick>")
  718.         Call Message("HELP|Launches AmiTCP's TraceRoute Command on NICK's host address.")
  719.     end
  720.     when spec="HELP" then do
  721.         Call Message("HELP|HELP Usage:")
  722.         Call Message("HELP|HELP <function>")
  723.         Call Message("HELP|Shows detailed help concerning the function in question.")
  724.         Call Message("HELP|HELP on its own shows a list of available functions.")
  725.     end
  726.         when spec="WCHOP" then do
  727.         Call Message("HELP|WCHOP Usage:")
  728.         Call Message("HELP|WCHOP <message text>")
  729.         Call Message("HELP|Sends <message text> as a private message to all OPs on the channel.")
  730.         Call Message("HELP|"BOLD"WARNING: "BOLD"This could result in you losing connection with the server, due to excess flooding.")
  731.         Call Message("HELP|You can also kicked for doing this. Have a good reason ready.")
  732.     end
  733.     when spec="ELITE" then do
  734.         Call Message("HELP|ELITE Usage:")
  735.         Call Message("HELP|ELITE <text to be converted>")
  736.         Call Message("HELP|Converts inputed text into 'eleet speke'.")
  737.     end
  738.     when spec="METER" then do
  739.         Call Message("HELP|METER Usage:")
  740.         Call Message("HELP|METER <percent> <label>")
  741.         Call Message("HELP|<Label> will be placed in the box with "OMeter" appended to it")
  742.         Call Message("HELP|        ie - Label=Lame will give you [LameOMeter]")
  743.         Call Message("HELP|<Percent> can be any number from -25 to 200,")
  744.         Call Message("HELP|if over 200 a + is added. If under 25, - is appended.")
  745.     end
  746.     when spec="LEAVE" then do
  747.         Call Message("HELP|LEAVE Usage:")
  748.         Call Message("HELP|LEAVE <exit text>")
  749.         Call Message("HELP|Leaves the current channel with a parting message.")
  750.     end
  751.     otherwise Call Message("HELP|Help for this function not here yet. Sorry.")
  752. end
  753.  
  754. Call Message("HELP|")
  755. Call Message("HELP|Please report bugs etc to "BOLD"Stone-D@eldar.demon.co.uk"BOLD)
  756. return